
UWAGA: wcz "zawijanie wierszy" w swoim edytorze !
Tekst powsta przy uyciu Notepad-a Windows 95 i korzysta z wszelkich "dobrodziejstw" tego systemu ze szczeglnym uwzgldnieniem strony kodowej !    ;-)


How to ... czyli: "Nie wszystko zoto co si wieci !"
---------------------------------------------------------
Cel       : Uzyskanie wersji zarejestrowanej XARA3D 3.0 Trial z 9 grudnia 98 (PCWK 02/99)
Narzdzia : W32DASM, SI

Prba zarejestrowania programu, sugerowana przez sam program przy kadym jego starcie, nieodmiennie koczy si komunikatem informujcym o wprowadzeniu bdnego kodu (program nie pyta o uytkownika, lecz jedynie o #SN !). Nie skutkuj standartowe pulapki na zakadane na 
wywoania standartowych funkcji API.

Posluenie si W32DASM da nam plik ze zdisamblewanym kodem XARA 3D !
Jednak w okienku "strings" nie znajdujemy komunikatu generowanego po nieudanej rejestracji ! Posluymy si zatem poleceniem "Find String" dostpnym w Menu programu : "You entered" ... ! Program zatrzymuje sie po chwili na odpowiednim adresie. Kilka linijek wyej znajdujemy adresy skd, w trakcie realizacji programu, nastepuje skok do miejsca w kodzie wskazujcego na podanie blednego SN. Miejsc tych jest w sumie DZIEWI !!!

Obserwujemy, e pierwszych siedem nastepuje po wywoaniu jakiej procedury i testowaniu tego co "zwracane" jest przez ni  w rejestrze AL.

Spisujemy sobie wszystkie adresy odwoa warunkowych i zamykamy z W32DASM. Nie bdzie nam ju potrzebny plik ze "rdem" XARA 3D.

Uruchamiamy SILoader, i z niego, nasz program XARA3D. SILoader zatrzymuje nas na pierwszym rozkazie programu. Ustawiamy pulapke BPX na pierwszy z adresow zdobytych dzieki W32DASM i pozwalamy programowi na swobodne realizowanie swoich funkcji ! 
Proba rejestracji spowoduje zadzialanie pulapki. Posumy si tym !
Zatrzymujemy sie w miejscu skad nastepuje skok pod adres realizujcy polecenia zwizane z podaniem bednego kodu !

Gasimy go (F9) i ustawiamy nowy (F9) kilka linii wyej, tam gdzie jest wywoanie "procedury kontroli". Pozwalamy programowi "pj" dalej, ogldamy komunikat o bdnym kodzie i podejmujemy kolejn prbe rejestracji. SI zatrzymuje nas w miejscu wejscia do "procedury
kontroli". F8 wprowadza nas do jej wntrza. Krtka procedura pobiera znak z wprowadzonego przez nas SN i w kilku poleceniach kontroluje czy SN spenia jaki wstpny warunek. Kilka eksperymentw prowadzi do prostego wniosku i pierwszy znak naszego SN MUSI!!! by WIELK liter !
Poprawiamy co trzeba we wprowadzonym SN i rejestrach i spokojnie ledzimy (F8) co dzieje si dalej. 
Program wraca z "procedury kontroli" do gwnego wtku i "przechodzi" przez pierwszy z "punktow kontrolnych". Kolejne wywoania tej samej co porzednio procedury prowadz do wniosku, i CAY SN MUSI sklada si z dokadnie 7 LITER pisanych WIELKIMI znakami. 
Po pomylnym przejciu przez wszystkie siedem punktw kontrolnych przechodzimy do "kawaka"
odpowiedzialnego za wygenerowanie na podstawie wprowadzonego SN wartosci jednego z rejestrw i porwnanie go z innym, rwnierz modyfikowanym rejestrem.
Skok warunkowy wykonywany w efekcie ich porwnania prowadzi wprost do "nielubianej" przez nas sekwencji rozkazw wywietlajacych komunikat o bdzie ! 
Sprbujmy zatem wymusi poleceniem "R FL Z" zmian reakcji programu na podany przez nas SN.

I to jest ju to !
Kolejne wywolanie programu nie udostpnia ju mozliwoci rejestracji, za program wydaje si by pozbawiony manifestowanych dotd restrykcji! 
Kilka eksperymentow prowadzi do wniosku i program "zapamietuje" fakt "poprawnej" rejestracji w Rejestrach ! 
Wystarczy obecno wpisu:
[HKEY_CURRENT_USER\Software\Xara\X3D3\Install]
"Key"=dword:fc611acb
by wszystko bylo OK natomiast jego brak lub zmiana wartoci powoduje przywrcenie moliwoci rejestracji z wszelkimi wynikajacymi z tego faktu konsekwencjami.


Dwa dni pniej:
Ju po napisaniu tego tekstu i wysaniu go na list dyskusyjn CrackPL jeden z jej uczestnikw - Jo Joro - (thnx!) zauway, e jego "Key" mia inn warto !!!
Postanowiem to sprawdzi !
Okazao si, e XARA 3D, jeszcze przed przystpieniem do do pobierania naszego SN ju "wie" ukrywawajc ten fakt w wartoci rejestru EBP, jak warto bdzie mia "Key" jeli, oczywicie, podamy poprawny SN (lub wymusimy na programie jego akceptacj!).
Postpiem zatem tak:
1) po dojciu programu do miejsca w ktrym poprzednio zmieniem warto flagi Z nacisnem F12 i znalazem si "u wyjcia" z procedury wprowadzania i kontroli SN. Postawiem BPX na "wejciu" do niej, pozwoliem programowi "toczy" si dalej i podjem kolejn prb rejestracji. Tym razem jednak, kiedy SI zatrzyma si na wejciu do procedury posuyem si klawiszem F8 i dalej uywajc F10 obserwowaem zmiany wartoci rejestru EBP oraz realizujcy si kod programu (wiem, od tego mona dosta zeza, ale trudno: "Per aspera ad astra" !).
Okazao si, e program wywouje tutaj funkcje API operujce na rejestrach WIN-dy !
Otwiera klucze, pobiera ich wartoci, zamyka je, realizuje jakie swoje funkcje itp.
Poniewa jednak parametry wywoa tych funkcji (czytaj: nazwy otwieranych kluczy rejestru) przekazywane byy w nieczytelny dla mnie sposb, postanowiem uy wyspecjalizowanych narzdzi !
Pozwoliem programowi "lecie", obejrzaem sobie kolejny raz informacj o bednie podanym kodzie (sprawdziem jednak, jeszcze w SI, uzywajc polecenia TASK, e XARA 3D jest widziany przez system jako "zadanie" o nazwie "X3D").

Uruchomiem program Regmonit. Jego zadaniem jest przechwytywa wszystkie odwoania do rejestrw realizowane przez system na polecenie innych programw. Posiada on take opcj filtrowania tych odwoa. Po uyciu filtra "X3D" (nazwa zadania XARA !) wybraem kolejny raz polecenie rejestracji. Okazao si, e X3D wywouje kilkakrotmie rejestry w celu pobrania pewnych informacji ! Jak atwo zgadn informacje dotyczyy bezporednio naszego komputera i wykorzystywane byy przez program do modyfikacji wartoci rejestru EBP zapamitywanej pniej jako "znacznik" poprawnej rejestracji ! Kolejne prby udowodniy, e wszystkie te wartoci s pobierane z rejestrw i na ich podstawie podejmowana jest przez program, po dodatkowej "obrbce" decyzja o tym czy zosta ju wczeniej zarejestrowany czy te nie !

Dopiero taki "komplet" informacji daje programowi podstawy do wydania werdyktu !

Kontrolowane wartoci to:
------- Cut here -------------
REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]
"RegisteredOwner"="tato@iname.com"
"RegisteredOrganization"="CrackPL"
"FirstInstallDateTime"=hex:00,00,00,00

[HKEY_CURRENT_USER\Software\Xara\X3D3\Install]
"Key"=dword:3DB2CE3F

------- Cut here -------------
Jakiekolwiek odstpstwo od podanych tu danych zpowoduje wygenoerownie nowego "Key", porwnanie go z tym istniejcy w rejestrze i, na tej podstawie, wydanie werdyktu !

Wszelkie uwagi prosz kierowa do autora tekstu:
tato@iname.com


				21 stycznia 1999 r. godz. 01_30